package server;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;

/**
 * Deze klasse schrijft naar de server.
 * @author David Covemaeker, Maarten Minnebo, Tim Van Thuyne, Toon Kint
 */

public class ServerWriter
{
	private BufferedWriter writer;
	protected ServerWriter serverWriter;
	
	/**
	 * De constructor maakt de BufferedWriter aan die voor alle output naar de Socket zal zorgen.
	 * @param socket De Socket die de ServerWriter gebruikt
	 */
	public ServerWriter(Socket socket) 
	{
		// TODO Auto-generated constructor stub
		try
		{
			writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
		serverWriter = this;
	}

	/**
	 * Schrijft speciale berichten naar de server, namelijk de niet-chatberichten.
	 * @param line De gestuurde lijn
	 */
	public void writeLine(String line) throws IOException
	{
		writer.write(line + "\r\n");
		writer.flush();
	}

	/**
	 * Schrijft een chatbericht naar de server.
	 * @param channel Het kanaal waar het chatbericht naartoe moet gestuurd worden
	 * @param line Het chatbericht
	 */
	public void sayLine(String channel, String line) throws IOException
	{
		// TODO Auto-generated method stub
		// Schrijf chatbericht (line) naar het chatkanaal (channel)
		writeLine("PRIVMSG " + channel + " :" + line);
	}
}
